<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_stock.php");
require_once("../Datos/Tablas/Tbl_ec_proveedores.php");
require_once("../Datos/Selectores/Sel_Articulos.php");

class Sel_Compras extends Selector{

	function Sel_Compras(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Compras";
		$this->estTablaBase(new Tbl_ec_stock($conexion, ''));

        $relacionada = new Tbl_ec_proveedores($conexion, '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('stock_proveedor'), $this->obtCampoRelacionado('ec_proveedores', 'prov_id'), '=');


        $relacionada = new SubConsulta(new Sel_Articulos($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('stock_articulo'), $this->obtCampoRelacionado('Articulos', 'Codigo'), '=');
		
				
		$tabla = $this->obtTabla('ec_stock');
		$funcion = new Funcion('Cantidad', 'Count', $tabla);
		$campo = $this->tablaBase->obtCampo('stock_id');
		$funcion->agregarCampo($campo);
		
		$funcion->estEsBase(1);
		$funcion->estNoIngresar(1);
		$this->agregarCampoVisible($funcion);
		
		$campo = $this->tablaBase->obtCampo('stock_fecha_compra');
		$campo->estAlias('Fecha de Compra');
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->obtTabla('Articulos');
		$funcion = new Funcion('Articulo', 'Concat', $tabla);
		$campo = $this->obtCampoRelacionado('Articulos', 'Articulo');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('Articulos', 'Marca');
		$funcion->agregarCampo($campo);

		$this->agregarCampoVisible($funcion);

		$tabla = $this->obtTabla('ec_proveedores');
		$funcion = new Funcion('Proveedor', 'Concat', $tabla);
		$campo = $this->obtCampoRelacionado('ec_proveedores', 'prov_apellido');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('ec_proveedores', 'prov_nombre');
		$funcion->agregarCampo($campo);
		$funcion->estEsGrupo(1);
		$this->agregarCampoVisible($funcion);

		$campo = $this->tablaBase->obtCampo('stock_costo');
		$campo->estAlias('Costo');
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);

		$tabla = $this->obtTabla('ec_stock');
		$funcion = new Funcion('Cantidad', 'Count', $tabla);
		$campo = $this->tablaBase->obtCampo('stock_id');
		$funcion->agregarCampo($campo);
		
		$funcion->estEsBase(1);
		$funcion->estNoIngresar(1);
		$funcion->estTipo("Entero");
		$this->agregarCampoVisible($funcion);

		
		$this->txtConsulta = $this->GenerarConsulta();
 }
}
?>